home *** CD-ROM | disk | FTP | other *** search
/ Dr. Windows 3 / dr win3.zip / dr win3 / VISUALBA / PPM116.ZIP / PPM.DOC < prev    next >
Text File  |  1994-02-17  |  78KB  |  1,915 lines

  1.  
  2.                       Programmer's Project Manager (PPM)
  3.  
  4.                                 Copyright 1993
  5.                                       by
  6.  
  7.                    Stevenson Technical Services, Inc. (STSI)
  8.                             108 Second Avenue West
  9.                              Bertha MN 56437-0297
  10.  
  11.                              Phone: (218) 924-2050
  12.                          FAX: (218) 924-2050 (Ext. 11)
  13.                      The Bertha BBS: (218) 924-2060, 8,N,1
  14.  
  15.  
  16.  
  17.                   ■─────────────────────────────────────────■
  18.                   │                Welcome!                 │
  19.                   ■─────────────────────────────────────────■
  20.  
  21.  
  22. Thank you for trying PPM!  PPM is a utility designed to make programming
  23. easier.  Much easier!  By setting up your own program in PPM, you can compile
  24. and link your source files, compress the resulting EXE file, date and time
  25. stamp selected release files, scan them for viruses, create a final compressed
  26. file in .ZIP, .ARJ, or .SQZ format, and copy any of the above categories of
  27. files to destination directories on any drive.  PPM is meant to be a complete
  28. environment, helping you put together a program from start to finish.
  29.  
  30. If you appreciate PPM, you are encouraged to call The Bertha BBS at (218) 924-
  31. 2060, and let us know!  Comments, suggestions, and enhancement requests are
  32. always welcome!
  33.  
  34.  
  35.  
  36.                   ■─────────────────────────────────────────■
  37.                   │              Requirements               │
  38.                   ■─────────────────────────────────────────■
  39.  
  40.  
  41. To run PPM reliably, you will need the following:
  42.  
  43. ∙ DOS 3.3 or Higher
  44. ∙ IBM PC, PC-Compatible or MS-DOS Computer with a Hard Drive and 640K RAM
  45. ∙ CGA Color, EGA Color, or VGA Color Monitor (Highly Recommended)
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.                                      Page 1
  67.  
  68.                   ■─────────────────────────────────────────■
  69.                   │           Table of Contents:            │
  70.                   ■─────────────────────────────────────────■
  71.  
  72.  
  73. Title Page & Welcome . . . . . . . . . . . . . . . . . . . . . . . .    Page 1
  74.  
  75. Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . .    Page 1
  76.  
  77. Quick-Start Instructions . . . . . . . . . . . . . . . . . . . . . .    Page 3
  78.  
  79. Disclaimer . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    Page 3
  80.  
  81. Registration . . . . . . . . . . . . . . . . . . . . . . . . . . . .    Page 3
  82.  
  83. Technical Support  . . . . . . . . . . . . . . . . . . . . . . . . .    Page 4
  84.  
  85. PPM's Feature List . . . . . . . . . . . . . . . . . . . . . . . . .    Page 4
  86.  
  87. Installing PPM . . . . . . . . . . . . . . . . . . . . . . . . . . .    Page 6
  88.  
  89. Executing PPM  . . . . . . . . . . . . . . . . . . . . . . . . . . .    Page 7
  90.  
  91. Using PPM  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    Page 7
  92.  
  93. Getting Started  . . . . . . . . . . . . . . . . . . . . . . . . . .    Page 7
  94.  
  95. The File Menu  . . . . . . . . . . . . . . . . . . . . . . . . . . .    Page 8
  96.  
  97. The Project Menu . . . . . . . . . . . . . . . . . . . . . . . . . .   Page 10
  98.  
  99. The Compile Menu . . . . . . . . . . . . . . . . . . . . . . . . . .   Page 12
  100.  
  101. The Link Menu  . . . . . . . . . . . . . . . . . . . . . . . . . . .   Page 13
  102.  
  103. The Utility Menu . . . . . . . . . . . . . . . . . . . . . . . . . .   Page 15
  104.  
  105. The Master Menu  . . . . . . . . . . . . . . . . . . . . . . . . . .   Page 17
  106.  
  107. The Setup Menu . . . . . . . . . . . . . . . . . . . . . . . . . . .   Page 19
  108.  
  109. The Help Menu  . . . . . . . . . . . . . . . . . . . . . . . . . . .   Page 20
  110.  
  111. PPM Editor Commands  . . . . . . . . . . . . . . . . . . . . . . . .   Page 21
  112.  
  113. Troubleshooting / Common Problems  . . . . . . . . . . . . . . . . .   Page 25
  114.  
  115. Questions And Answers  . . . . . . . . . . . . . . . . . . . . . . .   Page 25
  116.  
  117. Programs Mentioned . . . . . . . . . . . . . . . . . . . . . . . . .   Page 27
  118.  
  119. PPM Registration Form  . . . . . . . . . . . . . . . . . . . . . . .   Page 28
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.                                      Page 2
  133.  
  134.                   ■─────────────────────────────────────────■
  135.                   │        Quick-Start Instructions:        │
  136.                   ■─────────────────────────────────────────■
  137.  
  138.  
  139. To get PPM up and running in a hurry, follow these Quick-Start instructions:
  140.  
  141.  
  142. 1.  Run the Install program by logging to the correct drive and directory, and
  143.     type "INSTALL".
  144.  
  145. 2.  After installing PPM, you should edit your AUTOEXEC.BAT file, and add the
  146.     following statement:
  147.  
  148.     SET PPM=DRIVE:\PATH     (Replace with your drive and path.)
  149.  
  150.     EXAMPLE:  SET PPM=D:\PPM
  151.  
  152.     (Note:  You do not need to edit your AUTOEXEC.BAT file if you accepted the
  153.     default destination directory of "C:\PPM".)
  154.  
  155.  
  156. 3.  Reboot your machine to ensure that the new changes to your AUTOEXEC.BAT
  157.     file have taken effect.
  158.  
  159.  
  160. 4.  Execute Programmer's Project Manger by typing "PPM".
  161.  
  162.  
  163.  
  164.                   ■─────────────────────────────────────────■
  165.                   │               Disclaimer:               │
  166.                   ■─────────────────────────────────────────■
  167.  
  168. By using PPM and/or any of its components, users indicate their acceptance of
  169. the following terms:
  170.  
  171. "PPM is supplied as is.  The author disclaims all warranties, expressed or
  172. implied, including, without limitation, the warranties of merchantability and
  173. of fitness for any purpose.  Neither STSI, The Bertha BBS, or any STSI
  174. employees will be held responsible for any damages, direct or consequential,
  175. which may result from the use of PPM and/or any of its components."
  176.  
  177. "Information in this documentation is subject to change without notice and
  178. does not represent a commitment on the part of STSI.  STSI may make
  179. improvements and/or changes in this documentation or in the products and/or
  180. programs described in this documentation at any time."
  181.  
  182.  
  183.  
  184.                   ■─────────────────────────────────────────■
  185.                   │              Registration:              │
  186.                   ■─────────────────────────────────────────■
  187.  
  188. PPM is distributed under the shareware concept.  It is NOT freeware!  You may
  189. try PPM for a period of two weeks.  After this period, you must either
  190. discontinue using it, or register it.  A single-user license is only $49.95.
  191. This price includes printed documentation, 3 1/2" and 5 1/4" diskettes, and a
  192. registration number for PPM.
  193.  
  194. By registering PPM and receiving a valid registration number, users will be
  195. able to automatically remove all program delays, and will be notified of
  196.  
  197.  
  198.                                      Page 3
  199.  
  200. major product updates and revisions.
  201.  
  202. To order PPM and receive a registration number, call STSI at (218) 924-2050,
  203. and charge it to your Visa, MasterCard, American Express, or Discover credit
  204. card.  Upon request, you will receive a temporary registration number over the
  205. telephone.  Using this number will automatically remove all delay screens from
  206. PPM.  For further registration information and pricing, please read the
  207. REGISTER.DOC file included with PPM.  There is also a registration form
  208. contained at the end of this documentation file.
  209.  
  210.  
  211.  
  212.                   ■─────────────────────────────────────────■
  213.                   │           Technical Support:            │
  214.                   ■─────────────────────────────────────────■
  215.  
  216.  
  217. Technical support is available to PPM users through the following means:
  218.  
  219.  
  220. The Bertha BBS:    New versions of PPM will be posted here as soon as they are
  221.                    available.  The Bertha BBS uses a U.S. Robotics Dual-
  222.                    Standard Modem, which is capable of V.32bis, V.32, HST, and
  223.                    2400 baud connect speeds.  The access number for The Bertha
  224.                    BBS is (218)-924-2060.  Technical support questions should
  225.                    be addressed to the SYSOP.
  226.  
  227.  
  228. STSI FAX:          STSI has a FAX machine on-line 24 hours-a-day to accept FAX
  229.                    transmissions.  Technical support questions / problems may
  230.                    be faxed to (218) 924-2050.  Most FAX transmissions will be
  231.                    automatically routed to the FAX machine.  If you have
  232.                    problems reaching our FAX machine, wait until after the
  233.                    first ring, press 11, and then begin transmitting.
  234.  
  235.  
  236. Telephone:         Technical support calls may be placed at (218) 924-2050.
  237.  
  238.  
  239.  
  240.                   ■─────────────────────────────────────────■
  241.                   │           PPM's Feature List            │
  242.                   ■─────────────────────────────────────────■
  243.  
  244. PPM makes programming easier.  Much easier!  By setting up your own program in
  245. PPM, you can perform any or all of the following tasks:
  246.  
  247.  
  248. 1.   Edit source, documentation, or release files directly from PPM.
  249.  
  250.       * Choose an editor from a master list, or customize the editor name,
  251.         path, and switches as you need them.
  252.  
  253.       * Optionally use PPMEDIT, a built-in (64K-limit) text editor with a
  254.         multiple document interface, and other powerful features.
  255.  
  256.       * Optionally pass the name of a source, documentation, or release file
  257.         to edit, so your editor can pre-load it.
  258.  
  259.  
  260. 2.   Compile all, selected, or changed source files.
  261.  
  262.  
  263.  
  264.                                      Page 4
  265.  
  266.       * Choose the project compiler from a master list, or customize the
  267.         compiler name, path, and switches as you need them.
  268.  
  269.       * Optionally pause after each compile, last compile, or disable pausing.
  270.  
  271.  
  272. 3.   Link all source files.
  273.  
  274.       * Choose the project linker from a master list, or customize the linker
  275.          name, path, and switches as you need them.
  276.  
  277.       * Select any combination of libraries to include from a master list.
  278.  
  279.       * Set the name of the executable file to be created, and specify the
  280.         first file to be listed in the linking process.
  281.  
  282.       * Optionally specify the second file to be listed in the linking
  283.         process.
  284.  
  285.       * Optionally pause after linking, or disable pausing.
  286.  
  287.       * Optionally create a link map file.
  288.  
  289.       * Optionally compress the EXE file immediately after linking.
  290.  
  291.  
  292. 4.   Compress the executable file.
  293.  
  294.       * Choose the EXE compressor from a master list, or customize the
  295.         compressor name, path, and switches as you need them.
  296.  
  297.       * Optionally pause after compressing the EXE file, or disable pausing.
  298.  
  299.  
  300. 5.   Date and time stamp the release files.
  301.  
  302.       * Enter a specific date and time to place on selected release files.
  303.  
  304.       * PPM allows version tracking, and displays the program's version
  305.         number on the date/time stamping screen.
  306.  
  307.  
  308. 6.   Virus scan the release files.
  309.  
  310.       * Choose the virus scanner from a master list, or customize the
  311.         scanner name, path, and switches as you need them.
  312.  
  313.       * Optionally pause after scanning each file, the last file, or disable
  314.         pausing.
  315.  
  316.  
  317. 7.   Compress the release files for distribution.
  318.  
  319.       * Choose the project compressor from a master list, or customize the
  320.         compressor name, path, and switches as you need them.
  321.  
  322.       * Optionally pause after compressing the project files, or disable
  323.         pausing.
  324.  
  325.       * Specify the name and path of the compressed file to be created.
  326.  
  327.       * Use PKZIP, ARJ, or SQZ to compress the release files.
  328.  
  329.  
  330.                                      Page 5
  331.  
  332. 8.   Update files to destination directories.
  333.  
  334.       * Optionally copy the source files, documentation files, release files,
  335.         executable file, or compressed file to one or more destination
  336.         directories during PPM's update routine.  This is especially helpful
  337.         for backing up precious data, or creating a master directory full of
  338.         your program's files.
  339.  
  340.  
  341. 9.   Create a master program.
  342.  
  343.       * Optionally perform any one or more of the previously listed events in
  344.         sequence.
  345.  
  346.  
  347. 10.  Print any or all of the project files.
  348.  
  349.       * Print files directly from PPM, or route them to an external printing
  350.         utility.  (Useful for laser printers and utilities that can print 2-up
  351.         on a laser printer.)
  352.  
  353.  
  354. 11.  Run the executable file directly from PPM.
  355.  
  356.       * Optionally specify run arguments (command line parameters) to be
  357.         passed during the execution process.
  358.  
  359.  
  360. 12.  Other features...
  361.  
  362.       * Create a master list of compilers, linkers, libraries, editors, EXE
  363.         compressors, virus scanners, and project compressors.  PPM supports an
  364.         unlimited number of entries in each category.
  365.  
  366.       * Create project files in one of three categories: source files,
  367.         documentation files, or release files.  PPM supports an unlimited
  368.         number of files in each category.  Create default directories for each
  369.         category of files.
  370.  
  371.       * Optionally use PPM's optimum shell routines to swap PPM to disk or EMS
  372.         when executing an external program.
  373.  
  374.       * Mouseable interface makes PPM fast and easy to use!
  375.  
  376.  
  377. Why use PPM?  It does everything except write the programming code for you!
  378.  
  379.  
  380.  
  381.                   ■─────────────────────────────────────────■
  382.                   │             Installing PPM              │
  383.                   ■─────────────────────────────────────────■
  384.  
  385. The files needed to properly install PPM are listed in the file PACKING.LST.
  386. Log to the drive where you are installing PPM from, and type "INSTALL".  The
  387. installation program will ask you where you are installing PPM from (usually,
  388. the current directory), and the location where the program files should be
  389. stored.  (The default destination directory is C:\PPM.)
  390.  
  391. PPM can be installed on any drive in your system, including network drives.
  392.  
  393.  
  394.  
  395.  
  396.                                      Page 6
  397.  
  398. Important!   Be sure to include a "SET PPM=N:\PPM" statement (or wherever you
  399.              put PPM), in your AUTOEXEC.BAT file.  If this environment
  400.              variable is not found, PPM defaults to using the C:\PPM sub-
  401.              directory.
  402.  
  403.  
  404.  
  405.                   ■─────────────────────────────────────────■
  406.                   │              Executing PPM              │
  407.                   ■─────────────────────────────────────────■
  408.  
  409. To execute PPM, type "PPM" from the \PPM sub-directory, and press [ENTER].
  410. PPM's desktop will display the main menu, along with a logo containing version
  411. and copyright information.
  412.  
  413.  
  414.  
  415.                   ■─────────────────────────────────────────■
  416.                   │                Using PPM                │
  417.                   ■─────────────────────────────────────────■
  418.  
  419. PPM has a user-friendly interface to make working with project files as easy
  420. and seamless as possible.  PPM supports the use of either the mouse or the
  421. keyboard.  Persons using the keyboard will want to become familiar with the
  422. keys and key combinations available for use within PPM.  They are as follows:
  423.  
  424.     HOME            Move to beginning of field
  425.     CTRL+HOME       Move to beginning of field
  426.     END             Move to end of field
  427.     CTRL+END        Move to end of field
  428.     INSERT          Insert Mode / Overstrike Mode
  429.     DELETE          Remove character over the cursor
  430.     BACKSPACE       Remove character left of the cursor
  431.     LEFT ARROW      Move cursor one character to the left
  432.     RIGHT ARROW     Move cursor one character to the right
  433.     ENTER           Move cursor to the next field
  434.     TAB             Move cursor to next field
  435.     SHIFT+TAB       Move cursor to previous field
  436.  
  437.     ALT+DOWN ARROW  Show list on drop-down list box
  438.     DOWN ARROW      Select next entry in drop-down list box
  439.     UP ARROW        Select previous entry in drop-down list box
  440.     SPACE BAR       Highlight file in file list box
  441.  
  442.  
  443.  
  444.                   ■─────────────────────────────────────────■
  445.                   │             Getting Started             │
  446.                   ■─────────────────────────────────────────■
  447.  
  448. To start working with PPM, you will need to set up your defaults under the
  449. Setup menu.  This should always be the place to start, since all other project
  450. settings depend on what is set up under the Setup Menu.  Modify each of the
  451. options on the Setup screen as they apply to you.  For information on what
  452. each of the options on the Setup screens mean, see "The Setup Menu", explained
  453. below.
  454.  
  455. After you have set up the PPM program defaults, you can create your first
  456. project.  The following steps will assist you in creating a new project file.
  457.  
  458. 1.  Select New Project from the File menu, fill in each of the fields, and
  459.     select Ok.
  460.  
  461.  
  462.                                      Page 7
  463.  
  464.  
  465. 2.  Select Project Paths from the Project menu, and enter the default path
  466.     where your source, documentation, and release files will be maintained.
  467.     The source path should be the location of the files that will be compiled
  468.     and linked.  The documentation path should be the location where text
  469.     (information) files will be created and edited.  The release path should
  470.     be the location of the files that will released with the project.  These
  471.     files can be optionally date and time stamped, scanned for viruses, and
  472.     included in a compressed project file.
  473.  
  474. 3.  Select Project Editors from the Project menu, and set up the default
  475.     editors you will be using for each set of files.
  476.  
  477. 4.  Select Manage Project Files from the Project menu, and add the names and
  478.     paths of the files you want included in each group.
  479.  
  480. 5.  Select Compiler from the Compile menu, and choose the default compiler you
  481.     will be using with the current project.
  482.  
  483. 6.  Select Linker from the Link menu, and choose the default linker you will
  484.     be using with the current project.
  485.  
  486. 7.  Select Libraries from the Link menu, and mark each of the library names
  487.     that you want included in the linking process.
  488.  
  489. 8.  Select EXE Filename / Link Files from the Link menu, and specify the name
  490.     and path of the executable filename to be created, the first file to be
  491.     listed in the link response file, and, optionally, the second file to be
  492.     listed in the link response file.
  493.  
  494. 9.  Select EXE Compressor from the Link menu, and choose the default EXE
  495.     Compressor you will be using with the current project.
  496.  
  497. 10. Select Virus Scanner from the Utility menu, and choose the default Virus
  498.     Scanner you will be using with the current project.
  499.  
  500. 11. Select Project Compressor from the Utility menu, and choose the default
  501.     Project Compressor you will be using with the current project.
  502.  
  503. 12. Select Setup Update Routines from the Master menu, and enter the paths
  504.     where each of the listed file groups should be copied during the update
  505.     routine.
  506.  
  507. 13. Select Save Project from the File menu to save your project file with your
  508.     customized settings.
  509.  
  510. Taking the steps listed above will help you to get started on your own project
  511. with PPM.  Once each of these steps has been completed, you should be prepared
  512. to use any of PPM's features.
  513.  
  514.  
  515.  
  516.                   ■─────────────────────────────────────────■
  517.                   │              The File Menu              │
  518.                   ■─────────────────────────────────────────■
  519.  
  520. New Project:
  521.  
  522. Selecting New Project allows the creation of a new PPM project file in .PPM
  523. format.  When this option is selected, a screen will display prompting you for
  524. the filename, project description, and version number.  When entering the
  525. project's version number, only enter the numeric representation of the
  526.  
  527.  
  528.                                      Page 8
  529.  
  530. version.  For example, type "1.05", not "Version 1.05".  (PPM displays the
  531. version number on the date/time stamp screen to assist you when stamping your
  532. release files.)
  533.  
  534.  
  535. Open Project:
  536.  
  537. Opening a project allows an existing project file to be opened for use on the
  538. desktop.  The starting drive and directory for opening files is the default
  539. path for .PPM files, as specified in the Setup PPM Path screen.
  540.  
  541.  
  542. Close Project:
  543.  
  544. Closing a project file removes it from use on the desktop, and disables all
  545. related menu items until another project file is created or opened.  If any
  546. changes have not been saved to the project file, PPM will warn you and give
  547. you the option to save them before closing.
  548.  
  549.  
  550. Save Project:
  551.  
  552. Saving a project file places all of your current settings into a .PPM file,
  553. allowing you to recall them for later use.  Among the information stored in a
  554. .PPM file is the list of source, documentation, and release files, and the
  555. names, paths, and switches of the compiler, linker, scanner, compressors,
  556. libraries, and editors you have selected as the default for your project.
  557.  
  558.  
  559. Save Project As:
  560.  
  561. Selecting Save Project As allows a project to be saved under a new filename,
  562. maintaining all of the default settings already set up in the source project
  563. file that is being copied.
  564.  
  565.  
  566. Print Processor:
  567.  
  568. This option can be selected to choose a print processor for the open project
  569. file.  PPM allows direct printing of source, documentation, and release files,
  570. but also offers the option of routing files to an external print processor.
  571. This can be useful for printing your files in a custom fashion, such as
  572. printing source files 2-up on a page using a laser printer.  The list of
  573. available external print processors depends on the ones you set up on the
  574. Setup Defaults screen.
  575.  
  576.  
  577. Print:
  578.  
  579. When this option is selected, PPM displays the printing screen.  One file can
  580. be printed at a time, with the option of sending it directly to the printer
  581. port (LPT1, LPT2, or LPT3) or to a file, or the file can be routed through an
  582. external print processor, as set up under the Print Processor option explained
  583. above.  (Note: Network users experiencing errors when printing should see the
  584. Troubleshooting section toward the end of this documentation.)
  585.  
  586.  
  587. Delete Project:
  588.  
  589. Selecting Delete Project allows an existing project file to be deleted from
  590. the drive.  The starting drive and directory for deleting files is the default
  591. path for .PPM files, as specified in the Setup PPM Path screen.
  592.  
  593.  
  594.                                      Page 9
  595.  
  596. Shell To DOS:
  597.  
  598. PPM's Shell To DOS feature is handy for programmers who need to perform other
  599. functions in the middle of using PPM.  PPM can do a standard Shell To DOS, or
  600. it can use a special Optimum Shell routine that swaps PPM out to EMS or to
  601. disk.  (Default Optimum Shell options can be specified on the Setup Optimum
  602. Shell Options screen.)  Using the Optimum Shell option provides more available
  603. memory to execute other programs, etc.
  604.  
  605.  
  606. Exit PPM:
  607.  
  608. When you are ready to exit PPM, you can select Exit PPM from the File menu.
  609. Before exiting, PPM will warn you if your project file contains unsaved
  610. changes, offering you the option to save them before exiting.  PPM will then
  611. close the project file, and display a confirmation message before exiting.
  612. (Mouse users can double-click on the close box located in the top left corner
  613. of the PPM title bar to execute the Exit PPM command.)
  614.  
  615.  
  616.  
  617.                   ■─────────────────────────────────────────■
  618.                   │            The Project Menu             │
  619.                   ■─────────────────────────────────────────■
  620.  
  621.  
  622. Project Information:
  623.  
  624. Project Information can be accessed to change information that was specified
  625. when a .PPM file was originally created.  This allows the drive, path,
  626. filename, project description, and/or version number to be changed at any time
  627. in the process of developing a program.
  628.  
  629.  
  630. Project Paths:
  631.  
  632. The Project Paths screen contains three separate default paths for the project
  633. files.  There is one path for the source files, one for the documentation
  634. files, and one for the release files.  The paths that are set up here will
  635. determine the default location of each of these files.  Since this is only a
  636. default, alternate paths can be specified on any of the related files.
  637. Specifying paths in these locations simply makes data entry easier and faster.
  638.  
  639.  
  640. Project Editors:
  641.  
  642. Default editors for the source files, documentation files, and release files
  643. can be set up under the Project Editors option.  PPM offers three different
  644. editing options.  The first option is to use PPM's Real-Mode editor, called
  645. PPMEDIT.EXE, which is the default.  PPMEDIT is a simple, but well-written text
  646. editor with a 64-K limit.  The second option is to use PPM's Protected-Mode
  647. editor, which requires a 286 or higher.  The third option is to use an
  648. external, user-defined editor.  When you select an external editor, PPM
  649. displays a drop-down list box with the names of all of the editors you set up
  650. on the Setup Defaults screen.  This allows you to quickly choose the one that
  651. will best-suit your current project files.  Since there are three separate
  652. file groups, a different editor can be specified for source, documentation,
  653. and release files, allowing maximum flexibility when creating a complete
  654. project.
  655.  
  656.  
  657.  
  658.  
  659.  
  660.                                     Page 10
  661.  
  662. Manage Project Files:
  663.  
  664. This menu item will be, perhaps, one of the most used menu items within PPM.
  665. Through the Manage Project Files screen, you will manage all of the files
  666. contained in the open project.
  667.  
  668.   File Group:
  669.     This drop-down list box contains a list of the three file groups used by
  670.     PPM.  The three groups are 1) Source Files, 2) Documentation Files, and 3)
  671.     Release Files.  Each of the groups has their own list of included files.
  672.     The Source Files group should contain a list of each of the files that
  673.     will be compiled and linked with the project.  The Documentation Files
  674.     group should contain a list of each of the text (information) files that
  675.     are considered to be part of the project.  This may include a revision
  676.     history, technical notes, on-line documentation files, and more.  The
  677.     Release Files group should contain a list of all of the files that will be
  678.     released with the final project.  Files listed in this group may be date
  679.     and time stamped, scanned for viruses, and/or added to a final compressed
  680.     project (archive) file.
  681.  
  682.   Included Files:
  683.     The Included Files list box displays a list of each file maintained in the
  684.     currently selected group.  When the File Group changes, the list of
  685.     displayed files also changes.  The files maintained in the Included Files
  686.     list are sorted alphabetically, making them easier to locate.  A counter
  687.     at the bottom of this list box shows the number of files located in the
  688.     currently selected File Group.
  689.  
  690.   Add:
  691.     The Add command button may be selected to add a new entry to the current
  692.     File Group.  The file being added does not need to reside on the hard
  693.     drive in order for it to be added to the project.  If necessary, it can be
  694.     added first and created later.  A Browse command button is available on
  695.     this screen to assist you in finding the correct file to add.  The file
  696.     that is added MUST contain a full drive and path pointing to the new file.
  697.     If you attempt to add a file without a drive specification, PPM
  698.     automatically prepends the default drive and path for the currently
  699.     selected File Group, as set up on the Project Paths screen, explained
  700.     earlier.  The new file must also contain an extension.  If the file you
  701.     are entering does not use an extension, simply place a period (".") at the
  702.     end of the name.
  703.  
  704.   Modify:
  705.     The Modify command button is similar to the Add command button, but
  706.     instead of adding a new entry, Modify allows you to change the name and/or
  707.     path of the file that is currently selected in the Included Files list
  708.     box.  Modify only works when the highlight bar is visible over the top of
  709.     a file in the Included Files list box.
  710.  
  711.   Edit:
  712.     One of the benefits of PPM is that you can automatically execute the
  713.     editor of your choice from within PPM.  There is no need to exit the PPM
  714.     environment to edit your source, documentation, or release files.  When
  715.     this command button is selected, PPM invokes the editor set up under
  716.     Project Editors, and passes the name of the selected file to the editor.
  717.     Most text editors can interpret this passed parameter, and automatically
  718.     load the named file.
  719.  
  720.   Edit New:
  721.     If the file you wish to edit is not listed in the Included Files list, or
  722.     if your editor cannot handle the filename as a passed parameter, use the
  723.     Edit New command button.  This simply executes the editor set up under
  724.  
  725.  
  726.                                     Page 11
  727.  
  728.     Project Editors, without passing a filename.
  729.  
  730.  
  731.   Edit All:
  732.     If you have selected the PPM Editor to edit the files in one of the File
  733.     Groups, you should notice that this command button is enabled.  The PPM
  734.     environment works in conjunction with the PPM Editor to automatically
  735.     attempt to load all of the files listed in a specific file group.  While
  736.     this may not be possible in some projects due to the size and/or number of
  737.     files listed, other projects may be able to use this very powerful
  738.     feature.  Any time that the selected editor is not the PPM Editor, PPM
  739.     will disable this command button, making it unavailable for use by any
  740.     other editor.
  741.  
  742.   Remove:
  743.     The Remove command button can be selected to remove a file from the list
  744.     of Included Files.  A message box will display before performing this
  745.     action, allowing you to cancel your selection, or continue to remove the
  746.     file.
  747.  
  748.   Ok:
  749.     Once you have performed any needed actions on the list of Included Files,
  750.     you can select the Ok command button to return to the main menu.  Mouse
  751.     users can also double-click on the close box.
  752.  
  753.  
  754. Run Arguments:
  755.  
  756. This screen allows the user to enter a sequence of command line parameters to
  757. be passed to the program when it is executed by using the Run Program
  758. statement explained below.  Unlike other programs, PPM saves the run arguments
  759. into the .PPM project file, so PPM "remembers" and uses these same arguments
  760. until you change them or remove them completely.
  761.  
  762.  
  763. Run Program:
  764.  
  765. This option allows the created program to be executed directly from the PPM
  766. environment.  This allows quick and easy testing of the code, without the need
  767. to exit and re-enter PPM.  If run arguments were specified as explained above,
  768. PPM passes these as parameters to the executed program.  PPM can execute the
  769. program using a standard DOS Shell command, or it can use a special Optimum
  770. Shell routine that swaps PPM out to EMS or to disk.  (Default Optimum Shell
  771. options can be specified on the Setup Optimum Shell Options screen.)  Using
  772. the Optimum Shell option provides more available memory to the program being
  773. executed.
  774.  
  775.  
  776.  
  777.                   ■─────────────────────────────────────────■
  778.                   │            The Compile Menu             │
  779.                   ■─────────────────────────────────────────■
  780.  
  781.  
  782. Compiler:
  783.  
  784. This option can be selected to choose a project compiler for the open project
  785. file.  The list of available compilers depends on the ones you set up on the
  786. Setup Defaults screen.  If you want to enter your own compiler on-the-fly, you
  787. can simply type in the necessary name, path, and switches that will be needed
  788. to properly execute the compiler.
  789.  
  790.  
  791.  
  792.                                     Page 12
  793.  
  794.     Note:  For programmers using Builder (made by Hyperkinetix, Inc.), you
  795.     should specify "-c" on the switches command line to make sure that Builder
  796.     does not attempt to automatically link the project files.
  797.  
  798.  
  799. Compiler Preferences:
  800.  
  801. The Compiler Preferences screen contains the setting for whether PPM should
  802. force the compiler to pause after each file is compiled, after the last file
  803. is compiler, or not to pause at all.  Pausing after each compile allows
  804. programmers to troubleshoot problems in their code while debugging it.
  805. Pausing after the last compile is also handy to simply pause at the end of the
  806. compiling process.  If you are relatively sure that you will not encounter any
  807. errors during the compiling process, you may want to disable pausing, which
  808. will force PPM to restore the screen immediately after the last file is
  809. compiled.  The compiler preferences screen also contains a check box which,
  810. when selected, will force PPM to issue a beep-beep-beep whenever a pause is
  811. issued.
  812.  
  813.  
  814. Compile All Modules:
  815.  
  816. When Compile All Modules is selected from the compile menu, PPM executes the
  817. project compiler (see above) and passes the name of each source file
  818. maintained in the project.  Users can optionally specify if they want to pause
  819. after each file is compiled, after the last file is compiled, or disable
  820. pausing by setting the desired option on the Compiler Preferences screen as
  821. explained above.
  822.  
  823.  
  824. Compile Changed Modules:
  825.  
  826. When Compile Changed Modules is selected from the compile menu, PPM executes
  827. the project compiler (see above) and passes the name of each source file to be
  828. compiled that has changed since the last time it was compiled.  If a .OBJ file
  829. from a previous compile cannot be found, PPM automatically compiles the file,
  830. creating a new module.  This is definitely one of the most useful features of
  831. PPM.  Programmers are not forced to remember the names of the modules that
  832. need to be recompiled.  PPM does it automatically.  Users can optionally
  833. specify if they want to pause after each file is compiled, after the last file
  834. is compiled, or disable pausing by setting the desired option on the Compiler
  835. Preferences screen as explained above.
  836.  
  837.  
  838. Compile Selected Modules:
  839.  
  840. Selecting Compile Selected Modules from the compile menu causes a screen to
  841. display with a list of all source files in the current project.  Programmers
  842. can click in the check box next to the listed file to select a file, and
  843. select Compile to compile the selected source files in the project.  A counter
  844. in the lower right corner of this screen displays the total number of files
  845. listed, along with the number of user-selected files.  PPM maintains a list of
  846. the selected source files, and writes these to the .PPM file.  The next time
  847. you choose to Compile Selected Modules, PPM automatically checks the same ones
  848. you selected the last time you used this routine.
  849.  
  850.  
  851. Compile Changed And Link:
  852.  
  853. This command allows the fastest possible creation of an executable file by
  854. only compiling the files that have changed, and automatically linking the
  855. resulting modules.  This is the same as selecting Compile Changed Modules from
  856.  
  857.  
  858.                                     Page 13
  859.  
  860. the Compile Menu, and Link All Modules from the Link Menu.
  861.  
  862.  
  863. Compile All And Link:
  864.  
  865. This command allows the fast creation of an executable file by compiling all
  866. of the files in the project, and automatically linking the resulting modules.
  867. This is the same as selecting Compile All Modules from the Compile Menu, and
  868. Link All Modules from the Link Menu.
  869.  
  870.  
  871.  
  872.                   ■─────────────────────────────────────────■
  873.                   │              The Link Menu              │
  874.                   ■─────────────────────────────────────────■
  875.  
  876. Linker:
  877.  
  878. This option can be selected to choose a project linker for the open project
  879. file.  The list of available linkers depends on the ones you set up on the
  880. Setup Defaults screen.  If you want to enter your own linker on-the-fly, you
  881. can simply type in the necessary name, path, and switches that will be needed
  882. to properly execute the linker.
  883.  
  884.  
  885. Linker Preferences:
  886.  
  887. The Linker Preferences screen contains several linker settings that determine
  888. actions taken during and after the link process.  The first setting determines
  889. whether PPM should force a pause after the linking process is complete, or not
  890. to pause at all.  Pausing after the linking process will display an brief
  891. message, and will allow you to view any error messages reported by the linker,
  892. while suppressing the pause will force PPM to restore the screen immediately
  893. after the linking process is complete (whether or not it was successful).  The
  894. linker preferences screen also contains a check box which, when selected, will
  895. force PPM to issue a beep-beep-beep whenever a pause is issued.
  896.  
  897. The linker preferences screen also allows programmers to specify if a map file
  898. should be created during the linking process, and if so, what it should be
  899. called.  If the last option on this screen is checked, PPM is instructed to
  900. use the selected EXE compressor (see below) to automatically compress the EXE
  901. file after the linking process is complete.
  902.  
  903.  
  904. Libraries:
  905.  
  906. The Libraries screen allows programmers to select any number of pre-defined
  907. libraries that should be included in the file linking process.  To include
  908. libraries in the linking process, a check mark must be placed beside the
  909. desired library name on this screen.  To set up a list of available libraries
  910. in PPM, enter the Setup Defaults menu, and specify the libraries you will be
  911. using.  (See "The Setup Menu" described below.)
  912.  
  913.  
  914. EXE Filename / Link Files:
  915.  
  916. On the EXE Filename / Link Files screen, programmers can specify the names of
  917. the 1) the executable file to be created,  2) the first link file to be
  918. listed in the link response file, and 3) the second link file to be listed in
  919. the link response file.  The executable file can be created in any directory,
  920. and can have any valid DOS filename.  The link files must be in .OBJ format,
  921. and they are not required to be part of the list of current source files in
  922.  
  923.  
  924.                                     Page 14
  925.  
  926. the project.  Most of the time, programmers only need to specify the name of
  927. the first link file in the project, but a need may arise to specify the name
  928. of the second link file.  We recommend not using the second link file field
  929. unless your program requires it.  Each of the three drop-down boxes on this
  930. screen allow the user to choose a name from the list of source files in the
  931. project.  If a user selects an executable filename from the list of .OBJ
  932. files, PPM will change the extension of the file in this field to .EXE when
  933. the user moves the cursor to another field.  (Note: The executable filename
  934. field and the first link file field MUST contain entries in order for PPM to
  935. attempt to link the source (.OBJ) files.)
  936.  
  937.  
  938. Link All Modules:
  939.  
  940. When Link All Modules is selected from the link menu, PPM executes the project
  941. linker (see above) and passes the name of a link response file that is used in
  942. the linking process.  The link response file contains the names of the
  943. project's source files, the name (and location) of the executable file, the
  944. name (and location) of the map file (if one exists), and the names (and
  945. locations) of the libraries being linked into the file.  Users can optionally
  946. specify if they want to pause after the linking process is complete, or
  947. disable pausing by setting the desired option on the Linker Preferences screen
  948. as explained above.  The map file can also be specified on the Linker
  949. Preferences screen.  To specify Libraries, the executable filename, and the
  950. first and second link files, see the options explained above.
  951.  
  952. EXE Compressor:
  953.  
  954. This option can be selected to choose an EXE Compressor for the open project
  955. file.  The list of available EXE Compressors depends on the ones you set up on
  956. the Setup Defaults screen.  If you want to enter your own EXE Compressor on-
  957. the-fly, you can simply type in the necessary name, path, and switches that
  958. will be needed to properly execute the EXE Compressor.
  959.  
  960.  
  961. Compress EXE File:
  962.  
  963. When your executable file has been successfully created through the linking
  964. process, you may want to compress it using an EXE compression program.
  965. Selecting this option from the link menu invokes the project's EXE compressor,
  966. as specified above, to compress the executable file.  PPM automatically pauses
  967. after the process is complete so you can review any results.
  968.  
  969.  
  970.  
  971.                   ■─────────────────────────────────────────■
  972.                   │            The Utility Menu             │
  973.                   ■─────────────────────────────────────────■
  974.  
  975. Date / Time Stamp Release Files:
  976.  
  977. Selecting Date / Time Stamp Release Files from the Utility menu will display a
  978. screen with a list of all the current release files.  The PgUp and PgDn
  979. command buttons can be used to search through the list if there are more
  980. present than are currently being shown on the first page.  On the right side
  981. of the screen, PPM contains two text fields allowing programmers to enter the
  982. date and time that should be used to stamp the selected files.  Once Stamp is
  983. selected, PPM saves the list of date and time stamped files to the project
  984. file, allowing them to be automatically marked as the default the next time
  985. this routine is used.  A message will display while the files are being
  986. stamped, and completion message will show up when the process has been
  987. finished.
  988.  
  989.  
  990.                                     Page 15
  991.  
  992. Virus Scanner:
  993.  
  994. This option can be selected to choose a virus scanner for the open project
  995. file.  The list of available virus scanners depends on the ones you set up on
  996. the Setup Defaults screen.  If you want to enter your own virus scanner on-
  997. the-fly, you can simply type in the necessary name, path, and switches that
  998. will be needed to properly execute the virus scanner.
  999.  
  1000.  
  1001. Scanner Preferences:
  1002.  
  1003. The Scanner Preferences screen contains the setting for whether PPM should
  1004. force the virus scanner to pause after each release file is scanned, after the
  1005. last release file is scanned, or not to pause at all.  Pausing after each
  1006. scan allows programmers to view any error messages reported by the virus
  1007. scanner.  You can disable pausing during or after the scanning process, which
  1008. will force PPM to restore the screen immediately after the last file is
  1009. scanned.  The scanner preferences screen also contains a check box which, when
  1010. selected, will force PPM to issue a beep-beep-beep whenever a pause is issued.
  1011.  
  1012.  
  1013. Scan All Release Files:
  1014.  
  1015. When Scan All Release Files is selected from the utility menu, PPM executes
  1016. the project scanner (see above) and passes the name of each release file
  1017. maintained in the project.  Users can optionally specify if they want to pause
  1018. after each file is scanned, after the last file is scanned, or disable pausing
  1019. by setting the desired option on the Scanner Preferences screen as explained
  1020. above.
  1021.  
  1022.  
  1023. Scan Selected Release Files:
  1024.  
  1025. Selecting Scan Selected Release Files from the utility menu causes a screen to
  1026. display with a list of all release files in the current project.  Programmers
  1027. can click in the check box next to the listed file to select a file, and
  1028. select Scan to scan the selected release files for viruses.  A counter in the
  1029. lower right corner of this screen displays the total number of files listed,
  1030. along with the number of user-selected files.  PPM maintains a list of the
  1031. selected release files, and writes these to the .PPM file.  The next time you
  1032. choose to Scan Selected Release Files, PPM automatically checks the same ones
  1033. you selected the last time you used this routine.
  1034.  
  1035.  
  1036. Project Compressor:
  1037.  
  1038. This option can be selected to choose a Project Compressor for the open
  1039. project file.  The list of available Project Compressors depends on the ones
  1040. you set up on the Setup Defaults screen.  If you want to enter your own
  1041. Project Compressor on-the-fly, you can simply type in the necessary name,
  1042. path, and switches that will be needed to properly execute the compressor.
  1043. (Note: Currently, PPM supports the use of ARJ, SQZ, and PKZIP to compress
  1044. project files.  LHA cannot be used at this time due to its lack of support for
  1045. list files.)
  1046.  
  1047.  
  1048. Project Compressor Preferences:
  1049.  
  1050. The Project Compressor Preferences screen contains several compressor settings
  1051. that determine actions taken during and after the compression process.  The
  1052. first setting determines whether PPM should force a pause after the
  1053. compression process is complete, or not to pause at all.  Pausing after the
  1054.  
  1055.  
  1056.                                     Page 16
  1057.  
  1058. linking process will display a "Strike any key to continue..." message, and
  1059. will allow you to view any error messages reported by the project compressor,
  1060. while suppressing the pause will force PPM to restore the screen immediately
  1061. after the compression process is complete (whether or not it was successful).
  1062. The project compressor preferences screen contains a check box which, when
  1063. selected, will force PPM to issue a beep-beep-beep whenever a pause is issued.
  1064. This screen should also contain the name of the compressed file to be created
  1065. during the compression process.
  1066.  
  1067.  
  1068. Compress All Release Files:
  1069.  
  1070. When Compress All Release Files is selected from the utility menu, PPM
  1071. executes the project compressor (see above), and passes a filename with a list
  1072. of each release file maintained in the project.  Users can optionally specify
  1073. if they want to pause after the compression process is complete, or disable
  1074. pausing by setting the desired option on the Project Compressor Preferences
  1075. screen as explained above.
  1076.  
  1077.  
  1078. Compress Selected Release Files:
  1079.  
  1080. Selecting Compress Selected Release Files from the utility menu causes a
  1081. screen to display with a list of all release files in the current project.
  1082. Programmers can click in the check box next to the listed file to select a
  1083. file, and select Compress to add the selected release files into a compressed
  1084. project file with the filename set up on the Project Compressor Preferences
  1085. screen.  A counter in the lower right corner of this screen displays the total
  1086. number of files listed, along with the number of user-selected files.  PPM
  1087. maintains a list of the selected release files, and writes these to the .PPM
  1088. file.  The next time you choose to Compress Selected Release Files, PPM
  1089. automatically checks the same ones you selected the last time you used this
  1090. routine.
  1091.  
  1092.  
  1093.  
  1094.                   ■─────────────────────────────────────────■
  1095.                   │             The Master Menu             │
  1096.                   ■─────────────────────────────────────────■
  1097.  
  1098.  
  1099. Setup Update Routines:
  1100.  
  1101. The Setup Update Routines screen is a useful feature of PPM that allows
  1102. programmers to copy the newest files (listed in the File Groups) to several
  1103. different locations on the disk drive.
  1104.  
  1105.   File Group:
  1106.     In addition to the standard three file groups (Source Files, Documentation
  1107.     Files, and Release Files), this drop-down list box contains two more
  1108.     groups, called Executable File, and Compressed Project File.
  1109.  
  1110.   Copy Group Files To Directory / Directories:
  1111.     In this list box, programmers can enter one or more destination
  1112.     directories where files in each of the files groups are copied.  This is
  1113.     especially useful for making a backup copy of your programming files to
  1114.     another drive, or updating alternate directories with the newest version
  1115.     of your program file.  The number of directory entries for each file group
  1116.     is limited only by memory.  A list of the destination directories for each
  1117.     file group is saved and maintained in the individual project file.
  1118.  
  1119.  
  1120.  
  1121.  
  1122.                                     Page 17
  1123.  
  1124.   Add:
  1125.     The Add command button may be selected to add a new destination directory
  1126.     to the current File Group.  A Browse command button is available on this
  1127.     screen to assist you in finding an existing directory.
  1128.  
  1129.   Modify:
  1130.     The Modify command button is similar to the Add command button, but
  1131.     instead of adding a new entry, Modify allows you to change the drive
  1132.     and/or path of the destination directory that is currently selected in the
  1133.     Copy Group Files To Directory / Directories list box.  Modify only works
  1134.     when the highlight bar is visible over the top of a destination directory.
  1135.   Remove:
  1136.     The Remove command button can be selected to remove a destination
  1137.     directory from the list.  A message box will display before performing
  1138.     this action, allowing you to cancel your selection, or continue to remove
  1139.     the entry.
  1140.  
  1141.   Ok:
  1142.     Once you have performed any needed actions on the list of destination
  1143.     directories, you can select the Ok command button to return to the main
  1144.     menu.  Mouse users can also double-click on the close box.
  1145.  
  1146.  
  1147.  
  1148. Update Files:
  1149.  
  1150. The Update Files menu option actually performs the task of updating files to
  1151. the destination directories, as set up under Setup Update Routines, described
  1152. above.  This screen presents five check boxes, allowing users to select any or
  1153. all of the five file groups to update.  When Ok is selected the update process
  1154. begins, and a message displays the current file being copied, and the
  1155. destination of the copied file.  If PPM is unable to copy the current file, it
  1156. issues an error message, explaining which file could not be copied, and where
  1157. its destination directory should have been.  Reasons for an error can range
  1158. from the original file not existing, or not being found, to the destination
  1159. directory not being present.  Once the updating process is complete, PPM
  1160. informs you with a message box.
  1161.  
  1162.  
  1163. Create Master Program:
  1164.  
  1165. This feature presents PPM's "icing on the cake".  Create Master Program allows
  1166. you to complete any or all of the operations performed during the normal
  1167. routine of creating a program.  This includes compiling all, changed, or
  1168. selected modules, linking all modules, compressing the executable file, date
  1169. and time stamping the release files, scanning all or selected release files
  1170. for viruses, compressing all or selected release files into a compressed
  1171. project file, and updating selected file groups to the previously set up
  1172. destination directories.  Each of these operations are optional, allowing you
  1173. to exclude any of them from the master process.  Using this menu options
  1174. causing PPM to perform all of the selected operations in succession, improving
  1175. the speed of the process.  While parts of the process may be automatic, some
  1176. routines may require user intervention, such as compiling selected modules,
  1177. date and time stamping files, scanning selected release files, compressing
  1178. selected release files, and updating.  Of course, if you have selected any of
  1179. the pausing options on the various preferences screens, PPM will issues the
  1180. pause statements at the pre-selected places.
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.                                     Page 18
  1189.  
  1190.                   ■─────────────────────────────────────────■
  1191.                   │             The Setup Menu              │
  1192.                   ■─────────────────────────────────────────■
  1193.  
  1194.  
  1195. PPM Path:
  1196.  
  1197. To modify the default location for .PPM files, select PPM Path from the
  1198. Setup menu.  The path specified here will be the default for where the Open
  1199. Project, Save Project As, and Delete Project dialog boxes display files when
  1200. performing any of these actions.
  1201.  
  1202.  
  1203. Defaults:
  1204.  
  1205. The Setup Defaults screen is the heart and soul of PPM.  This is where each of
  1206. the utilities you will be using is set up.  There are eight categories of
  1207. utilities that can be created, and each category can have as many utilities as
  1208. are needed.  The categories are as follows:
  1209.  
  1210.               Compilers                 Project Compressors
  1211.               Linkers                   Virus Scanners
  1212.               Libraries                 Editors
  1213.               EXE Compressors           Print Processors
  1214.  
  1215.  
  1216. Every utility entered can have a Utility Name, Default Path, and Default
  1217. Switches (except on Libraries, which do not use switches).  Each of the
  1218. available utilities listed can be modified or removed at will, allowing
  1219. complete flexibility with any utilities you may be using.
  1220.  
  1221.   Add:
  1222.     The Add command button may be selected to add a new utility to the current
  1223.     utility group.  A name and path MUST be specified in order for PPM to
  1224.     accept the new entry as valid.  A Browse command button is available on
  1225.     this screen to assist you in finding an existing program.  If you select a
  1226.     file from the browse screen, PPM pastes the filename, along with its drive
  1227.     and path, into the Path text box.
  1228.  
  1229.   Modify:
  1230.     The Modify command button is similar to the Add command button, but
  1231.     instead of adding a new entry, Modify allows you to change the name, path
  1232.     and/or switches of the utility that is currently selected in the list box.
  1233.     Modify only works when the highlight bar is visible over the top of a
  1234.     utility name.
  1235.  
  1236.   Remove:
  1237.     The Remove command button can be selected to remove a utility from the
  1238.     list.  A message box will display before performing this action, allowing
  1239.     you to cancel your selection, or continue to remove the utility.
  1240.  
  1241.   Ok:
  1242.     Once you have performed any needed actions on the list of utilities, you
  1243.     can select the Ok command button to save the changes to the PPM.INI file,
  1244.     and return to the main menu.
  1245.  
  1246.   Cancel:
  1247.     If you do not wish to save changes that have been made to this screen, you
  1248.     can select the Cancel command button to return to the main menu.  Any
  1249.     changes that have been made will be lost.
  1250.  
  1251.  
  1252.  
  1253.  
  1254.                                     Page 19
  1255.  
  1256. Optimum Shell Defaults:
  1257.  
  1258. The Optimum Shell Defaults screen is used to select when and where PPM's
  1259. optimum shell will be used.  The optimum shell routine works by swapping PPM
  1260. out to EMS or to disk, allowing more available conventional memory for
  1261. executing compilers, linkers, etc.  If optimum shell is not selected (check-
  1262. marked), PPM uses a standard DOS shell, which leaves very little available
  1263. conventional memory for the execution of other programs.
  1264.  
  1265. PPM's optimum shell feature can be used for the following routines:
  1266.  
  1267.   * DOS Shell  (Available from the File menu)
  1268.  
  1269.   * Compiling Source Files  (Available from the Compile menu)
  1270.  
  1271.   * Linking Source Files  (Available from the Link menu)
  1272.  
  1273.   * EXE File Compression  (Available from the Link menu)
  1274.  
  1275.   * Virus Scanning  (Available from the Utility menu)
  1276.  
  1277.   * Project Compression  (Available from the Utility menu)
  1278.  
  1279.   * Program Execution  (Available from the Project menu)
  1280.  
  1281.   * External PPM Editor  (Available from the Manage Project Files Screen)
  1282.  
  1283.   * External (User-Selected) Editor  (Available from the Manage Project Files
  1284.     Screen)
  1285.  
  1286.   * External Print Processor  (Available from the File menu)
  1287.  
  1288.  
  1289. Register:
  1290.  
  1291. Selecting Register from the Setup Menu will allow users to enter a
  1292. Registration Name and Number which will register their copy of PPM.  This will
  1293. automatically eliminate any built-in nag screens and accompanying delays.  In
  1294. addition to removing all program delays, registered users will receive the
  1295. latest version of PPM on diskette, along with a printed manual, and will be
  1296. notified of major product updates and revisions.
  1297.  
  1298. To register PPM, call STSI at (218) 924-2050, and charge it to your Visa,
  1299. MasterCard, American Express, or Discover credit card.  Upon request, you will
  1300. receive a registration number over the telephone.  Using this number will
  1301. automatically remove all delay screens from PPM.  For further registration
  1302. information and pricing, please read the REGISTER.DOC file included with PPM.
  1303. There is also a registration form contained at the end of this documentation
  1304. file.
  1305.  
  1306.  
  1307.  
  1308.                   ■─────────────────────────────────────────■
  1309.                   │              The Help Menu              │
  1310.                   ■─────────────────────────────────────────■
  1311.  
  1312. About PPM:
  1313.  
  1314. This screen displays version and copyright information about Programmer's
  1315. Project Manager, and how to contact STSI, the author of PPM.
  1316.  
  1317.  
  1318.  
  1319.  
  1320.                                     Page 20
  1321.  
  1322. Registration Info:
  1323.  
  1324. This screen display ordering information for PPM, including payment methods
  1325. and telephone numbers.  For further registration information, please read
  1326. REGISTER.DOC, included in this package.
  1327.  
  1328.  
  1329.  
  1330.                   ■─────────────────────────────────────────■
  1331.                   │           PPM Editor Commands           │
  1332.                   ■─────────────────────────────────────────■
  1333.  
  1334. PPM's Big Editor (for files larger than 64K), contains many useful commands
  1335. for editing files.  The following is a summary of these commands:
  1336.  
  1337.  
  1338. Primary Keys                 Purpose
  1339.  
  1340. <^J><^C>                     Copies the currently marked block to the
  1341.                              clipboard area.  Unmarks the block but leaves
  1342.                              the text stream alone.
  1343.  
  1344. <^J><^K>                     Copies the currently marked block to the
  1345.                              clipboard area, and deletes the block from the
  1346.                              main text stream.
  1347.  
  1348. <^J><^P>                     Pastes the contents of the clipboard (if any)
  1349.                              into the main text stream at the current
  1350.                              cursor position.
  1351.  
  1352.  
  1353. Cursor Movement
  1354.  
  1355. <Left>, <CtrlS>              Cursor left one character. Wraps to previous
  1356.                              line if the WrapAtLeft option is in effect.
  1357.  
  1358. <Right>, <CtrlD>             Cursor right one character.
  1359.  
  1360. <CtrlLeft>, <CtrlA>          Cursor left one word. Wraps to end of previous
  1361.                              line.
  1362.  
  1363. <CtrlRight>, <CtrlF>         Cursor right one word. Wraps to beginning of
  1364.                              following line.
  1365.  
  1366. <Home>, <CtrlQ><S>           Cursor to beginning of line.
  1367.  
  1368. <End>, <CtrlQ><D>            Cursor to end of line.
  1369.  
  1370. <Up>, <CtrlE>                Cursor up one line.
  1371.  
  1372. <Down>, <CtrlX>              Cursor down one line.
  1373.  
  1374. <CtrlW>                      Scroll display up one line.
  1375.  
  1376. <CtrlZ>                      Scroll display down one line.
  1377.  
  1378. <PgUp>, <CtrlR>              Scroll display up one page.
  1379.  
  1380. <PgDn>, <CtrlC>              Scroll display down one page.
  1381.  
  1382. <CtrlHome>, <CtrlQ><E>       Move cursor to top of edit window.
  1383.  
  1384.  
  1385.  
  1386.                                     Page 21
  1387.  
  1388. <CtrlEnd>, <CtrlQ><X>        Move cursor to bottom of edit window.
  1389.  
  1390. <CtrlPgUp>, <CtrlQ><R>       Move cursor to beginning of file.
  1391.  
  1392. <CtrlPgDn>, <CtrlQ><C>       Move cursor to end of file.
  1393.  
  1394. <CtrlJ><L>                   Prompts the user for a line number, then moves
  1395.                              the cursor to the specified line.
  1396.  
  1397.  
  1398. Insertion and Deletion
  1399.  
  1400. <Del>, <CtrlG>               Delete character at cursor.
  1401.  
  1402. <Bksp>, <CtrlH>, <CtrlBksp>  Delete character to left of cursor. If the
  1403.                              cursor is at the beginning of a line, it will
  1404.                              be joined with the previous line.
  1405.  
  1406. <CtrlY>                      Delete current line.
  1407.  
  1408. <CtrlQ><Y>                   Delete from cursor to end of line.
  1409.  
  1410. <CtrlT>                      Delete word to right of cursor. If the cursor
  1411.                              is at end of line, the following line is
  1412.                              joined with the current line.
  1413.  
  1414. <Enter>, <CtrlM>             Start a new line.
  1415.  
  1416. <CtrlN>                      Insert a new line at the position of the
  1417.                              cursor.
  1418.  
  1419. <Tab>, <CtrlI>               Move the cursor to the next tab stop. If
  1420.                              insert mode is on, any text to the right of
  1421.                              the cursor is shifted to the right.  When
  1422.                              fixed tabs are in effect, tab stops occur at
  1423.                              8-column intervals (by default).  When smart
  1424.                              tabs are in effect, tab stops are determined
  1425.                              by the locations of the words on the previous
  1426.                              line.
  1427.  
  1428. <CtrlP>                      Insert control character.
  1429.  
  1430.  
  1431. File Commands
  1432.  
  1433. <F2>, <CtrlK><S>             Save the current file and continue editing.
  1434.  
  1435. <F3>                         Load a new file.
  1436.  
  1437. <CtrlK><Q>                   Quit editing; ignore any changes made to the
  1438.                              text.
  1439.  
  1440. <CtrlK><D>                   Save the current file and load a new one.
  1441.  
  1442. <CtrlK><N>                   Save the current file under a new name.
  1443.  
  1444. <CtrlK><X>                   Save the current file and exit.
  1445.  
  1446.  
  1447. Block Commands
  1448.  
  1449. <F7>, <CtrlK><B>             Mark the beginning of a block.
  1450.  
  1451.  
  1452.                                     Page 22
  1453.  
  1454.  
  1455. <F8>, <CtrlK><K>             Mark the end of a block.
  1456.  
  1457. <CtrlK><T>                   Mark the current word as a block.
  1458.  
  1459. <CtrlQ><B>                   Jump to the beginning of the currently marked
  1460.                              block.
  1461.  
  1462. <CtrlQ><K>                   Jump to the end of the block.
  1463.  
  1464. <CtrlK><H>                   Toggle the display of blocks.
  1465.  
  1466. <CtrlK><C>                   Copy the currently displayed block to the
  1467.                              position of the cursor. The block markers are
  1468.                              placed around the new copy of the block.
  1469.  
  1470. <CtrlK><V>                   Move the currently displayed block to the
  1471.                              position of the cursor.
  1472.  
  1473. <CtrlK><Y>                   Delete the currently displayed block.
  1474.  
  1475. <CtrlK><I>                   Indent the currently displayed block by a
  1476.                              fixed number of spaces (defaults to 2).  Does
  1477.                              nothing if the cursor is not within the block.
  1478.  
  1479. <CtrlK><U>                   Unindent the block.
  1480.  
  1481. <CtrlO><O>                   Toggle the case of all characters in the
  1482.                              currently displayed block, or of the character
  1483.                              at the cursor if not within a visible block.
  1484.  
  1485. <CtrlO><U>                   Convert characters to upper case.
  1486.  
  1487. <CtrlO><V>                   Convert characters to lower case.
  1488.  
  1489. <CtrlK><R>                   Reads a file into the text buffer at the
  1490.                              current position of the cursor and marks it as
  1491.                              a block.  If the entire contents of the file
  1492.                              will not fit into the buffer, a warning will
  1493.                              be generated and no data will be read in.
  1494.  
  1495. <CtrlK><W>                   Writes the currently marked and displayed
  1496.                              block to a file.
  1497.  
  1498. <CtrlK><P>                   Writes the currently marked and displayed
  1499.                              block to the printer: LPT1 by default, or the
  1500.                              one set by calling SetPrinter.
  1501.  
  1502.  
  1503. Search and Replace
  1504.  
  1505. <CtrlQ><F>                   Allows the user to search for any string of up
  1506.                              to 30 characters. After entering a search
  1507.                              string, the user is prompted for search
  1508.                              options, which include 'B' (search Backwards),
  1509.                              'G' (search Globally), 'L' (search Locally,
  1510.                              within marked block), and 'U' (ignore case).
  1511.  
  1512. <CtrlQ><A>                   Works like Search, except that the user is
  1513.                              asked for a replacement string of up to 30
  1514.                              characters.  In addition to the search options
  1515.                              available for ccSearch, 'N' may be used to
  1516.  
  1517.  
  1518.                                     Page 23
  1519.  
  1520.                              indicate that replacements are to be made
  1521.                              without asking for confirmation.  If 'N' is
  1522.                              not selected, each replacement must be
  1523.                              confirmed: yes (make the replacement), no
  1524.                              (don't make it), all (make this replacement
  1525.                              and continue making replacements without
  1526.                              further confirmation), and quit (stop the
  1527.                              whole operation).
  1528.  
  1529. <CtrlL>                      Repeat the last search or replace operation.
  1530.  
  1531.  
  1532. Text Markers
  1533.  
  1534. <CtrlK><0>..<CtrlK><3>       Sets one of the ten text markers at the
  1535.                              position of the cursor. The default command
  1536.                              table does not assign any keys to
  1537.                              SetMark4..SetMark9.
  1538.  
  1539. <CtrlQ><0>..<CtrlQ><3>       Moves the cursor to a text marker set with one
  1540.                              of the ccSetMarkX commands.
  1541.  
  1542. <CtrlK><M>                   Toggle the display of text markers.
  1543.  
  1544. <CtrlQ><P>                   Jump to the last cursor position before the
  1545.                              cursor was moved to the current line.
  1546.  
  1547.  
  1548. Text Formatting
  1549.  
  1550. <CtrlB>                      Reformat the current paragraph. Does nothing
  1551.                              if word wrap is off.
  1552.  
  1553. <CtrlK><G>                   Reformat the entire text buffer. Use with
  1554.                              caution!
  1555.  
  1556. <CtrlO><C>                   Center the current line between column 1 and
  1557.                              the right margin.
  1558.  
  1559.  
  1560. Mode Toggles and Option Settings
  1561.  
  1562. <Ins>, <CtrlV>               Toggle insert mode on or off. A fat cursor
  1563.                              indicates insert mode; a thin cursor indicates
  1564.                              overtype mode.
  1565.  
  1566. <CtrlO><I>                   Toggle auto-indent mode on or off. In auto-
  1567.                              indent mode, pressing <Enter> will cause the
  1568.                              new line to have the same indentation as the
  1569.                              previous line.
  1570.  
  1571. <CtrlO><W>                   Toggle word wrap on or off.
  1572.  
  1573. <CtrlO><F>                   Toggle the tab mode between smart tabs and
  1574.                              fixed tabs.
  1575.  
  1576. <CtrlO><T>                   Prompts the user for the number of columns
  1577.                              between tab stops (1-10).
  1578.  
  1579. <CtrlO><R>                   Prompts the user for a new right margin.
  1580.  
  1581. <CtrlO><B>                   Prompts the user for the number of spaces to
  1582.  
  1583.  
  1584.                                     Page 24
  1585.  
  1586.                              indent/unindent marked blocks.  The default
  1587.                              value is 2.
  1588.  
  1589.  
  1590. Other
  1591.  
  1592. <CtrlQ><L>                   Restore original contents of the current line.
  1593.  
  1594. <F1>, <ClickBoth>            Request help.
  1595.  
  1596. <ClickLeft>                  Moves the cursor to the position indicated by
  1597.                              the mouse.
  1598.  
  1599.  
  1600.  
  1601.                   ■─────────────────────────────────────────■
  1602.                   │   Troubleshooting / Common Problems:    │
  1603.                   ■─────────────────────────────────────────■
  1604.  
  1605.  
  1606.                                   Problem #1:
  1607.  
  1608. After printing a text file directly to the printer, network users may receive
  1609. the error, "An error occurred while attempting to print the selected file."
  1610. This is not a problem with PPM, but rather a quirk when using a network.  Even
  1611. though the file is printed correctly to the right port, the network can send
  1612. an errorlevel back to DOS, causing this error message.  This is not serious,
  1613. and should not interfere with the printing process at all.
  1614.  
  1615.  
  1616.  
  1617.                   ■─────────────────────────────────────────■
  1618.                   │          Questions And Answers          │
  1619.                   ■─────────────────────────────────────────■
  1620.  
  1621. Question #1:  What compilers, linkers, compressors, etc. have been tested with
  1622.               Programmer's Project Manager?
  1623.  
  1624. Answer:       Although most compilers, linkers, virus scanners, and
  1625.               EXE compressors should work with PPM, these are the ones that
  1626.               have been specifically tested with PPM, and appear to work
  1627.               without any problems.
  1628.  
  1629.               Compilers:                    BC.EXE  (Visual Basic for DOS)
  1630.                                             BLD.EXE  (Builder)
  1631.  
  1632.               Linkers:                      LINK.EXE  (Visual Basic for DOS)
  1633.                                             MLINK.EXE  (Builder)
  1634.  
  1635.               EXE Compressors:              DIET.EXE  (Diet)
  1636.                                             PKLITE.EXE  (PK-Lite)
  1637.                                             TINYPROG.EXE  (TINYPROG)
  1638.  
  1639.               Virus Scanners:               SCAN.EXE  (Scan)
  1640.  
  1641.               Project Compressors:          ARJ.EXE  (ARJ)
  1642.                                             PKZIP.EXE  (PKZIP)
  1643.                                             SQZ.EXE (SQZ)
  1644.  
  1645.               External Print Processors:    4PRINT.EXE  (4-Print)
  1646.                                             MW-LASER.EXE  (MW-Laser)
  1647.  
  1648.  
  1649.  
  1650.                                     Page 25
  1651.  
  1652.                 Note:  A problem has been noted that MW-Laser does not handle
  1653.                        PPM's method of printing when command line parameters
  1654.                        are passed to MW-Laser.  PPM passes parameters first,
  1655.                        and the filename second.  MW-Laser wants these
  1656.                        parameters in reverse order, causing MW-Laser to pause
  1657.                        and request a filename to print.  PPM will attempt to
  1658.                        deal with this problem in a future release.
  1659.  
  1660.  
  1661. Question #2:  Does PPM take any precautions against losing information
  1662.               maintained in the individual .PPM files?
  1663.  
  1664. Answer:       Yes.  When working in-depth with PPM, you may notice that the
  1665.               "Writing Project File..." message box will show up prior to
  1666.               performing certain critical operations.  PPM automatically saves
  1667.               the project file prior to performing any of the following
  1668.               operations:
  1669.  
  1670.               Compiling Changed Modules
  1671.               Compiling Selected Modules
  1672.               Compiling All Modules
  1673.  
  1674.               Linking All Modules
  1675.               Scanning Selected Modules
  1676.               Scanning All Modules
  1677.               Compressing Selected Modules
  1678.               Compressing All Modules
  1679.  
  1680.               Saving the project file prior to performing these operations
  1681.               protects your information against the possibility of "crashes"
  1682.               which may occur from time to time, due to running external
  1683.               programs.  In addition, PPM also detects whether or not the
  1684.               project file is saved prior to running the program (from the
  1685.               Project menu).  If it is not saved, it offers the option of
  1686.               whether or not to save it before continuing.
  1687.  
  1688.  
  1689. Question #3:  What is the difference between "pre-switches" and "post-
  1690.               switches" when setting up default external editors?
  1691.  
  1692. Answer:       The pre-switches and post-switches fields are a new feature in
  1693.               version 1.10 of PPM.  Pre-switches are command line switches, or
  1694.               parameters, that are sent to the editor prior to the filename to
  1695.               be edited, while post-switches are command line switches, or
  1696.               parameters, that are sent to the editor after the filename to be
  1697.               edited.
  1698.  
  1699.               In version 1.00 of PPM, the command line to invoke an external
  1700.               editor looked similar to this:
  1701.  
  1702.                    Editor  Switches  Filename
  1703.  
  1704.               (Editor was the full path of the external editor; Switches were
  1705.               the command line parameters that were sent, as set up under the
  1706.               project editors screen, and Filename was the name of the file
  1707.               that was to be edited.)
  1708.  
  1709.               While most text editors accept the command line switches when
  1710.               they are placed before the filename, the text editor we use
  1711.               inside our company requires the use of switches to be placed
  1712.               AFTER the filename.  The command line to invoke an external
  1713.               editor in version 1.10 of PPM looks similar to this:
  1714.  
  1715.  
  1716.                                     Page 26
  1717.  
  1718.  
  1719.                    Editor  Pre-Switches  Filename  Post-Switches
  1720.  
  1721.               In the event that either the pre-switches or the post-switches
  1722.               are blank, a null (or blank) string is sent to the editor.  In
  1723.               the event that a filename is not passed, the pre-switches and
  1724.               post-switches are sent without the filename to separate them.
  1725.  
  1726.  
  1727.  
  1728.                   ■─────────────────────────────────────────■
  1729.                   │           Programs Mentioned            │
  1730.                   ■─────────────────────────────────────────■
  1731.  
  1732.  
  1733.           ARJ is copyrighted by Robert K Jung.
  1734.           Builder is copyrighted by Hyperkinetix, Inc.
  1735.           LHA is copyrighted by Haruyasu Yoshizaki.
  1736.           MS-DOS is copyrighted by Microsoft.
  1737.           PKLITE is copyrighted by PKWARE, Inc.
  1738.           PKUNZIP is copyrighted by PKWARE, Inc.
  1739.           PKZIP is copyrighted by PKWARE, Inc.
  1740.           SQZ is copyrighted by Jonas I Hammarberg.
  1741.           Visual Basic for DOS is copyrighted by Microsoft.
  1742.  
  1743.  
  1744.  
  1745.  
  1746.  
  1747.  
  1748.  
  1749.  
  1750.  
  1751.  
  1752.  
  1753.  
  1754.  
  1755.  
  1756.  
  1757.  
  1758.  
  1759.  
  1760.  
  1761.  
  1762.  
  1763.  
  1764.  
  1765.  
  1766.  
  1767.  
  1768.  
  1769.  
  1770.  
  1771.  
  1772.  
  1773.  
  1774.  
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  
  1780.  
  1781.  
  1782.                                     Page 27
  1783.  
  1784.                   Stevenson Technical Services, Inc. (STSI)
  1785.                           108 Second Avenue West
  1786.                           Bertha, MN 56437-0297
  1787.                           Phone: (218) 924-2050
  1788.                         FAX: (218) 924-2050 (Ext. 11)
  1789.                     The Bertha BBS: (218) 924-2060, N,8,1
  1790.  
  1791.                 Programmer's Project Manager Registration Form
  1792.  
  1793.    Qty    Description                                  Price Each     Total
  1794.  
  1795.   _____   PPM Single-User Registration                     $49.95    ________
  1796.             Includes Printed Manual, 3 1/2" & 5 1/4" Diskettes
  1797.  
  1798.   _____   PPM Site-License (Users? ____)                  _______    ________
  1799.  
  1800.          ┌────────────┬─────────────┐    ┌────────────┬─────────────┐
  1801.          │ # of Users │    Price    │    │ # of Users │    Price    │
  1802.          ├────────────┼─────────────┤    ├────────────┼─────────────┤
  1803.          │      5     │   $150.00   │    │     50     │  $1000.00   │
  1804.          │     10     │   $300.00   │    │    100     │  $1500.00   │
  1805.          │     20     │   $500.00   │    │   More?    │    CALL     │
  1806.          └────────────┴─────────────┘    └────────────┴─────────────┘
  1807.  
  1808.   _____   Additional Copies of Printed Manual               $10.00   ________
  1809.  
  1810.                                                         Sub-Total:   ________
  1811.  
  1812.                            Minnesota Residents Add 6.5% Sales Tax:   ________
  1813.  
  1814.                                                             Total:   ________
  1815.  
  1816.  
  1817.      Name: ___________________________________  Title: ______________________
  1818.  
  1819.   Company: __________________________________________________________________
  1820.  
  1821.   Address: ______________________________  City: ____________________________
  1822.  
  1823.     State: ___________  Zip Code: _______________  Phone: ___________________
  1824.  
  1825.   Please Register PPM To This Name: _________________________________________
  1826.  
  1827.  
  1828.   Method of Payment: ___ Visa/MC   ___ American Express   ___ Discover
  1829.                      ___ Check/Money Order Enclosed
  1830.             (Checks/MO's must be in U.S. Funds drawn on a U.S. Bank!)
  1831.  
  1832.   Credit Card #: __________________________________  Expiration Date: ___/___
  1833.  
  1834.   Name on Card: _______________________  Signature: _________________________
  1835.  
  1836.   Comments / Suggestions: ___________________________________________________
  1837.  
  1838.   ___________________________________________________________________________
  1839.  
  1840.   ___________________________________________________________________________
  1841.  
  1842.   ___________________________________________________________________________
  1843.  
  1844.   ___________________________________________________________________________
  1845.  
  1846.  
  1847.  
  1848.                                     Page 28
  1849.  
  1850.   Please take a minute to answer the following questions.  Your answers
  1851.   will assist us in improving and marketing PPM.
  1852.  
  1853.   (Check all that apply.)
  1854.  
  1855.   Where did you hear about PPM?
  1856.  
  1857.   [ ] BBS    [ ] Catalog/Magazine    [ ] Friend/Relative    [ ] Other
  1858.  
  1859.  
  1860.   What operating systems / environments do you use?
  1861.  
  1862.   [ ] DOS    [ ] Windows   [ ] DESQview/DESQview/X     [ ] OS/2
  1863.  
  1864.  
  1865.   What features of PPM do you use?
  1866.  
  1867.   [ ] Compiling            [ ] Linking          [ ] EXE Compression
  1868.   [ ] Date/Time Stamping   [ ] Virus Scanning   [ ] Project Compression
  1869.   [ ] Updating Files       [ ] Printing         [ ] Program Execution
  1870.  
  1871.  
  1872.   What programming language(s) do you use?
  1873.  
  1874.   [ ] BASIC      [ ] C / C++      [ ] Pascal      [ ] Assembler
  1875.   [ ] Builder    [ ] Other
  1876.                        (Please specify) _________________________
  1877.  
  1878.  
  1879.   What is the name of your...
  1880.  
  1881.   Compiler? __________________________  Linker? ____________________________
  1882.  
  1883.   EXE Compressor? ____________________  Virus Scanner? _____________________
  1884.  
  1885.   Project Compressor? ________________  Printing Utility? __________________
  1886.  
  1887.  
  1888.   What feature(s) do you like the most about PPM?  _________________________
  1889.  
  1890.   __________________________________________________________________________
  1891.  
  1892.   __________________________________________________________________________
  1893.  
  1894.  
  1895.   What feature(s) would you like to see added to PPM?  _____________________
  1896.  
  1897.   __________________________________________________________________________
  1898.  
  1899.   __________________________________________________________________________
  1900.  
  1901.  
  1902.   Additional Comments:  ____________________________________________________
  1903.  
  1904.   __________________________________________________________________________
  1905.  
  1906.   __________________________________________________________________________
  1907.  
  1908.   __________________________________________________________________________
  1909.  
  1910.  
  1911.   May We Quote You?    [ ] Yes    [ ] No    [ ] Doesn't Matter
  1912.  
  1913.  
  1914.                                     Page 29
  1915.